package com.health;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;

import com.github.mikephil.charting.data.Entry;
import com.guyj.CommonAdapter;
import com.guyj.base.ViewHolder;

import java.util.ArrayList;
import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

public class ChooseActivity extends AppCompatActivity {

    @Bind(R.id.recycler)
    RecyclerView recycler;
    List<HealthBean> datas;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_choose);
        ButterKnife.bind(this);
        datas=new ArrayList<>();
        setDatas();
        recycler.setLayoutManager(new LinearLayoutManager(ChooseActivity.this, LinearLayoutManager.VERTICAL,false));
        recycler.setAdapter(new CommonAdapter<HealthBean>(ChooseActivity.this,R.layout.item_choose,datas) {
            @Override
            protected void convert(ViewHolder viewHolder, final HealthBean o, int i) {
                viewHolder.setText(R.id.tv_name,o.getName());
                viewHolder.setOnClickListener(R.id.ll_root, new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent=new Intent(ChooseActivity.this,ChartActivity.class);
                        intent.putExtra("data",o);
                        startActivity(intent);
                    }
                });
            }

        });
    }

    /**
     * 填充模拟数据
     */
    private void setDatas() {
        addXueYa();
        addXinLv();
        addWoLi();
        addBMI();
        addYaoWei();
    }

    float average=0f;//平均值
    float lastValue=0;//最后一个值
    String str1,str2,str3,str4,str5;//建议字段

    /**
     * 添加心率，其他也参考这个格式
     */
    private void addXinLv() {
        HealthBean bean1 = new HealthBean();
        bean1.setName("心率");
        //心率
        List<Entry> entry1 = new ArrayList<>();
        if (MyApp.user == 0){
            entry1.add(new Entry(0, 62));
            entry1.add(new Entry(1, 73));
            entry1.add(new Entry(2, 79));
            entry1.add(new Entry(3, 101));
        }else{
            entry1.add(new Entry(0,77));
            entry1.add(new Entry(1,72));
            entry1.add(new Entry(2,77));
            entry1.add(new Entry(3,59));
        }

        //平均数是否处于正常值或者偏高偏低
        float temp=0f;
        for (Entry entry:entry1
             ) {
            temp+=entry.getY();
        }
        average=temp/entry1.size();
        if (average>=60&&average<=100){
            str1="平均心率数据正常\n";
        }
        if (average<60){
            str1="平均心率数据偏低\n";
        }
        if (average>100){
            str1="平均心率数据偏高\n";
        }


        //22对比查看趋势
        StringBuilder sb=new StringBuilder();
        for (int i = 0,j=1; j < entry1.size(); i++,j++) {
            if (entry1.get(i).getY()>entry1.get(j).getY()){
                sb.append("心率第"+(j+1)+"年比第"+(i+1)+"年降低了\n");
            }
            if (entry1.get(i).getY()==entry1.get(j).getY()){
                sb.append("心率第"+(j+1)+"年比第"+(i+1)+"年没有变化\n");
            }
            if (entry1.get(i).getY()<entry1.get(j).getY()){
                sb.append("心率第"+(j+1)+"年比第"+(i+1)+"年增加了\n");
            }
        }
        str2=sb.toString();

        lastValue=entry1.get(entry1.size()-1).getY();
        if (lastValue>=60&&lastValue<=100){
            str3="最近心率数据正常，请继续保持";
        }
        if (lastValue<60){
            str3="最近心率数据偏低，过低，若出现明显不适症状，请尽快询问医生，找对心率过低的病因，多补充营养，多锻炼";
        }
        if (lastValue>100){
            str3="最近心率数据偏高，控制情绪，不能过于激动，少饮酒熬夜，少吸烟，保持健康作息";
        }


        //设置心率集合
        bean1.setData1(entry1);
        //设置建议
        bean1.setSuggest(str1+"\n"+str2+"\n"+str3);
        /**
         * 每次设置完HealthBean后需要通过add方法加到datas中，剩下的会自动处理
         */
        datas.add(bean1);
    }

    /**
     * 添加血压，其他也参考这个格式
     */
    private void addXueYa() {
        HealthBean bean1=new HealthBean();
        bean1.setName("血压");

        //收缩压
        List<Entry> entry1=new ArrayList<>();
        if (MyApp.user == 0) {
            entry1.add(new Entry(0, 110));
            entry1.add(new Entry(1, 115));
            entry1.add(new Entry(2, 117));
            entry1.add(new Entry(3, 120));
            entry1.add(new Entry(4, 118));
        }else {
            entry1.add(new Entry(0, 118));
            entry1.add(new Entry(1, 120));
            entry1.add(new Entry(2, 117));
            entry1.add(new Entry(3, 115));
            entry1.add(new Entry(4, 110));
        }
        //舒张压
        List<Entry> entry2=new ArrayList<>();
        if (MyApp.user == 0) {
            entry2.add(new Entry(0, 77));
            entry2.add(new Entry(1, 80));
            entry2.add(new Entry(2, 75));
            entry2.add(new Entry(3, 73));
            entry2.add(new Entry(4, 70));
        }else {
            entry2.add(new Entry(0, 70));
            entry2.add(new Entry(1, 73));
            entry2.add(new Entry(2, 75));
            entry2.add(new Entry(3, 80));
            entry2.add(new Entry(4, 77));
        }



        //平均数是否处于正常值或者偏高偏低
        float temp=0f;
        for (Entry entry:entry1
                ) {
            temp+=entry.getY();
        }
        average=temp/entry1.size();
        if (average>=90&&average<=130){
            str1="平均收缩压数据正常\n";
        }
        if (average<90){
            str1="平均收缩压数据偏低\n";
        }
        if (average>130){
            str1="平均收缩压数据偏高\n";
        }

        //平均数是否处于正常值或者偏高偏低
        float temp1=0f;
        for (Entry entry:entry1
                ) {
            temp1+=entry.getY();
        }
        average=temp1/entry1.size();
        if (average>=60&&average<=85){
            str2="平均舒张压数据正常\n";
        }
        if (average<60){
            str2="平均舒张压数据偏低\n";
        }
        if (average>85){
            str2="平均舒张压数据偏高\n";
        }



        //22对比查看趋势
        StringBuilder sb=new StringBuilder();
        for (int i = 0,j=1; j < entry1.size(); i++,j++) {
            if (entry1.get(i).getY()>entry1.get(j).getY()){
                sb.append("收缩压第"+(j+1)+"年比第"+(i+1)+"年降低了\n");
            }
            if (entry1.get(i).getY()==entry1.get(j).getY()){
                sb.append("收缩压第"+(j+1)+"年比第"+(i+1)+"年没有变化\n");
            }
            if (entry1.get(i).getY()<entry1.get(j).getY()){
                sb.append("收缩压第"+(j+1)+"年比第"+(i+1)+"年增加了\n");
            }
        }
        str3=sb.toString();

        //22对比查看趋势
        StringBuilder sb2=new StringBuilder();
        for (int i = 0,j=1; j < entry1.size(); i++,j++) {
            if (entry1.get(i).getY()>entry1.get(j).getY()){
                sb2.append("舒张压第"+(j+1)+"年比第"+(i+1)+"年降低了\n");
            }
            if (entry1.get(i).getY()==entry1.get(j).getY()){
                sb2.append("舒张压第"+(j+1)+"年比第"+(i+1)+"年没有变化\n");
            }
            if (entry1.get(i).getY()<entry1.get(j).getY()){
                sb2.append("舒张压第"+(j+1)+"年比第"+(i+1)+"年增加了\n");
            }
        }
        str4=sb2.toString();




        lastValue=entry1.get(entry1.size()-1).getY();
        if (lastValue>=90&&lastValue<=130){
            str5="最近血压数据正常，请继续保持";
        }
        if (lastValue<90){
            str5="最近血压数据偏低，多吃莲子桂圆，适当食用刺激食欲的调味料，多摄入高钠，高胆固醇的的食物，升高血压";
        }
        if (lastValue>130){
            str5="最近血压数据偏高，询问医生是否吃药，如若在吃药，需坚持吃药，血压降低可以减少药量，但不能停止，保持好心情，尽量少吃盐，多吃清淡的食物，营养保持均衡，适当摄入富含钾的食物。";
        }

        //设置收缩压和舒张压集合
        bean1.setData1(entry1);
        bean1.setData2(entry2);
        //设置建议
        bean1.setSuggest(str1+str2+str3+str4+str5);
        /**
         * 每次设置完HealthBean后需要通过add方法加到datas中，剩下的会自动处理
         */
        datas.add(bean1);
    }

    private void addWoLi() {
        HealthBean bean1=new HealthBean();
        bean1.setName("视力");
        //视力
        List<Entry> entry1=new ArrayList<>();
        if (MyApp.user==0) {
            entry1.add(new Entry(0, 5.3f));
            entry1.add(new Entry(1, 5.2f));
            entry1.add(new Entry(2, 5.3f));
            entry1.add(new Entry(3, 5.1f));
            entry1.add(new Entry(4, 5.3f));
            entry1.add(new Entry(5, 5.0f));
            entry1.add(new Entry(6, 4.9f));
            entry1.add(new Entry(7, 4.3f));
        }else {
            entry1.add(new Entry(0, 5.3f));
            entry1.add(new Entry(1, 5.2f));
            entry1.add(new Entry(2, 5.3f));
            entry1.add(new Entry(3, 5.1f));
            entry1.add(new Entry(4, 5.3f));
            entry1.add(new Entry(5, 5.0f));
            entry1.add(new Entry(6, 5.2f));
            entry1.add(new Entry(7, 5.2f));
        }

        //平均数是否处于正常值或者偏高偏低
        float temp=0f;
        for (Entry entry:entry1
                ) {
            temp+=entry.getY();
        }
        average=temp/entry1.size();
        if (average>=4.9&&average<=5.3){
            str1="平均视力数据正常\n";
        }
        if (average<4.9){
            str1="平均视力数据偏低\n";
        }
        if (average>5.3){
            str1="平均视力数据偏高\n";
        }


        //22对比查看趋势
        StringBuilder sb=new StringBuilder();
        for (int i = 0,j=1; j < entry1.size(); i++,j++) {
            if (entry1.get(i).getY()>entry1.get(j).getY()){
                sb.append("视力第"+(j+1)+"年比第"+(i+1)+"年降低了\n");
            }
            if (entry1.get(i).getY()==entry1.get(j).getY()){
                sb.append("视力第"+(j+1)+"年比第"+(i+1)+"年没有变化\n");
            }
            if (entry1.get(i).getY()<entry1.get(j).getY()){
                sb.append("视力第"+(j+1)+"年比第"+(i+1)+"年增加了\n");
            }
        }
        str2=sb.toString();

        lastValue=entry1.get(entry1.size()-1).getY();
        if (lastValue>=4.9&&lastValue<=5.3){
            str3="最近视力数据正常，请继续保持";
        }
        if (lastValue<4.9){
            str3="最近视力数据偏低，度数增长太快，拒绝用眼过度，多眨眼，多喝水保持眼球湿润，适当得按摩和远近眺望也有利于减缓度数的增长";
        }
        if (lastValue>5.3){
            str3="最近视力数据偏高，请继续保持";
        }

        bean1.setData1(entry1);
        //设置建议
        bean1.setSuggest(str1+"\n"+str2+"\n"+str3);
        /**
         * 每次设置完HealthBean后需要通过add方法加到datas中，剩下的会自动处理
         */
        datas.add(bean1);
    }
    private void addBMI() {
        HealthBean bean1=new HealthBean();
        bean1.setName("BMI");
        //身体质量指数
        List<Entry> entry1=new ArrayList<>();
        if (MyApp.user == 0) {
            entry1.add(new Entry(0, 19));
            entry1.add(new Entry(1, 18));
            entry1.add(new Entry(2, 20));
            entry1.add(new Entry(3, 21));
            entry1.add(new Entry(4, 24));
            entry1.add(new Entry(5, 23));
            entry1.add(new Entry(6, 25));
        }else {
            entry1.add(new Entry(0, 22));
            entry1.add(new Entry(1, 23));
            entry1.add(new Entry(2, 24));
            entry1.add(new Entry(3, 21));
            entry1.add(new Entry(4, 20));
            entry1.add(new Entry(5, 18));
            entry1.add(new Entry(6, 18));
        }

        //平均数是否处于正常值或者偏高偏低
        float temp=0f;
        for (Entry entry:entry1
                ) {
            temp+=entry.getY();
        }
        average=temp/entry1.size();
        if (average>=18.5&&average<=24.9){
            str1="平均BMI数据正常\n";
        }
        if (average<18.5){
            str1="平均BMI数据偏低\n";
        }
        if (average>24.9){
            str1="平均BMI数据偏高\n";
        }


        //22对比查看趋势
        StringBuilder sb=new StringBuilder();
        for (int i = 0,j=1; j < entry1.size(); i++,j++) {
            if (entry1.get(i).getY()>entry1.get(j).getY()){
                sb.append("BMI第"+(j+1)+"年比第"+(i+1)+"年降低了\n");
            }
            if (entry1.get(i).getY()==entry1.get(j).getY()){
                sb.append("BMI第"+(j+1)+"年比第"+(i+1)+"年没有变化\n");
            }
            if (entry1.get(i).getY()<entry1.get(j).getY()){
                sb.append("BMI第"+(j+1)+"年比第"+(i+1)+"年增加了\n");
            }
        }
        str2=sb.toString();

        lastValue=entry1.get(entry1.size()-1).getY();
        if (lastValue>=18.5&&lastValue<=24.9){
            str3="最近BMI数据正常，请继续保持";
        }
        if (lastValue<18.5){
            str3="最近BMI数据偏低，体重过低，保持良好的心情和充足得睡眠，不要突然吃过于油腻的东西，少食多餐，进行一些大运动量的运动";
        }
        if (lastValue>24.9){
            str3="最近BMI数据偏高，超重，保持好心情，不暴饮暴食，合理搭配饮食，多吃粗粮蔬菜水果，拒绝高热量食物，早晚可以进行适当得运动，如慢跑，快走等";
        }

        bean1.setData1(entry1);
        //设置建议
        bean1.setSuggest(str1+"\n"+str2+"\n"+str3);
        /**
         * 每次设置完HealthBean后需要通过add方法加到datas中，剩下的会自动处理
         */
        datas.add(bean1);
    }
    private void addYaoWei() {
        HealthBean bean1=new HealthBean();
        bean1.setName("血糖");
        //血糖
        List<Entry> entry1=new ArrayList<>();
        if (MyApp.user==0) {
            entry1.add(new Entry(0, 3.91f));
            entry1.add(new Entry(1, 4.82f));
            entry1.add(new Entry(2, 5.93f));
            entry1.add(new Entry(3, 5.84f));
            entry1.add(new Entry(4, 5.95f));
            entry1.add(new Entry(5, 6.06f));
            entry1.add(new Entry(6, 6.97f));
        }else {
            entry1.add(new Entry(0, 6.97f));
            entry1.add(new Entry(1, 6.06f));
            entry1.add(new Entry(2, 5.95f));
            entry1.add(new Entry(3, 5.84f));
            entry1.add(new Entry(4, 5.93f));
            entry1.add(new Entry(5, 4.82f));
            entry1.add(new Entry(6, 3.91f));
        }

        //平均数是否处于正常值或者偏高偏低
        float temp=0f;
        for (Entry entry:entry1
                ) {
            temp+=entry.getY();
        }
        average=temp/entry1.size();
        if (average>=3.9&&average<=6.1){
            str1="平均血糖数据正常\n";
        }
        if (average<3.9){
            str1="平均血糖数据偏低\n";
        }
        if (average>6.1){
            str1="平均血糖数据偏高\n";
        }


        //22对比查看趋势
        StringBuilder sb=new StringBuilder();
        for (int i = 0,j=1; j < entry1.size(); i++,j++) {
            if (entry1.get(i).getY()>entry1.get(j).getY()){
                sb.append("血糖第"+(j+1)+"年比第"+(i+1)+"年降低了\n");
            }
            if (entry1.get(i).getY()==entry1.get(j).getY()){
                sb.append("血糖第"+(j+1)+"年比第"+(i+1)+"年没有变化\n");
            }
            if (entry1.get(i).getY()<entry1.get(j).getY()){
                sb.append("血糖第"+(j+1)+"年比第"+(i+1)+"年增加了\n");
            }
        }
        str2=sb.toString();

        lastValue=entry1.get(entry1.size()-1).getY();
        if (lastValue>=3.9&&lastValue<=6.1){
            str3="最近血糖数据正常，请继续保持";
        }
        if (lastValue<3.9){
            str3="最近血糖数据偏低，注意饮食营养，多吃蔬菜水果，饮食规律，多做运动，保持心情舒畅，睡觉时将头部垫高，可随身携带糖果，头晕时吃一点";
        }
        if (lastValue>6.1){
            str3="最近血糖数据偏高，拒绝甜食，吃饭吃七、八分饱，定时定量，少食多餐，多吃蔬菜水果。可适当饮用茶类，进行锻炼";
        }

        bean1.setData1(entry1);
        //设置建议
        bean1.setSuggest(str1+"\n"+str2+"\n"+str3);
        /**
         * 每次设置完HealthBean后需要通过add方法加到datas中，剩下的会自动处理
         */
        datas.add(bean1);
    }
}
